/**
 * Copyright (c) 2013-Now http://jeesite.com All rights reserved.
 */
package com.jeesite.modules.storage.service;

import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.storage.dao.GoodsSpecDao;
import com.jeesite.modules.storage.entity.GoodsSpec;
import com.jeesite.modules.storage.util.WebUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 商品规格Service
 */
@Service
@Transactional(readOnly=true)
public class GoodsSpecService extends CrudService<GoodsSpecDao, GoodsSpec> {

	@Autowired
	private GoodsService goodsService;

	/**
	 * 查询分页数据
	 * @param goodsSpec 查询条件
	 * @param goodsSpec.page 分页对象
	 * @return
	 */
	@Override
	public Page<GoodsSpec> findPage(GoodsSpec goodsSpec) {
		return super.findPage(goodsSpec);
	}

	/**
	 * 活动商品规格
	 * @param type 类型
	 * @param activityId 活动Id
	 * @param goodsId 商品Id
	 * @return 活动商品规格
	 */
	public List<Map> getActivityListByGoodsId(String type,String activityId, String goodsId){
		List<Map> maps = new ArrayList<>();
		List<Map> specMaps = dao.findActivityListByGoodsId(activityId,goodsId);
		for (Map specMap : specMaps){
			specMap.put("sourcePrice",specMap.get("price"));
			specMap.put("salePrice", WebUtil.getSalePrice(type, specMap));
			maps.add(specMap);
		}
		return maps;
	}

	/**
	 * 获取商品规格【编码】
	 * @param code 编码
	 * @return 商品规格
	 */
	public GoodsSpec getByCode(String code){
		return dao.findByCode(code);
	}
}